package com.leo.app;

import javafx.collections.ObservableList;
import javafx.scene.Node;
import javafx.scene.layout.Background;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;

/**
 * @ClassName View
 * @Description
 * @Author wangss
 * @date 2020.12.07 20:55
 * @Version 1.0
 */
public abstract class View {

    private final Pane pane;

    public View() {
        pane = new StackPane();
        pane.setBackground(Background.EMPTY);
    }

    public Pane getPane() {
        return pane;
    }

    /**
     * 获取所有的字节的
     *
     * @return
     */
    public ObservableList<Node> getChildren() {
        return pane.getChildren();
    }

    /**
     * 加载
     */
    public abstract void onLaunch();

    /**
     * 加载完成
     */
    public abstract void onFinish();

    /**
     * 进入页面
     */
    public void onEnter() {

    }

    /**
     * 离开界面
     */
    public void onLeave() {

    }

    /**
     * 引擎中调用：开始
     */
    public void onStart() {

    }

    /**
     * 引擎中调用：刷新
     *
     * @param time
     */
    public void onUpdate(double time) {

    }

    /**
     * 引擎中调用：停止
     */
    public void onStop() {

    }
}
